﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BusinessLayer.BO;
using BusinessLayer.Interface;
using EntityLayer;

namespace BusinessLayer.Facade
{
    public class clsFacadeLegajoActualizar : clsIFacadeLegajoActualizar
    {

        public bool InsertarLegajo(SGP_LEGAJO obj)
        {
            try
            {
                if (Validaciones(obj))
                {
                    return new clsLegajoBO().Insertar(obj);
                }
                else
                {
                    return false;
                }

            }
            catch (Exception)
            {
                return false;
                throw;
            }
        }
        public bool ModificarLegajo(SGP_LEGAJO obj)
        {
            try
            {
                return new clsLegajoBO().Modificar(obj);
            }
            catch (Exception)
            {
                return false;
            }

        }
        public bool EliminarLegajo(SGP_LEGAJO obj)
        {
            try
            {
                return new clsLegajoBO().Eliminar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }
        public List<SGP_LEGAJO> listarLegajo()
        {
            try
            {
                return new clsLegajoBO().listar();
            }
            catch (Exception)
            {
                return null;
            }
        }
        public List<SGP_LEGAJO> MostrarLegajo(string ID)
        {
            try
            {
                return new clsLegajoBO().Mostrar(ID);
            }
            catch (Exception)
            {
                return null;
            }
        }
        bool Validaciones(SGP_LEGAJO obj)
        {
            try
            {
                return true;
            }
            catch (Exception)
            {
                return false;
            }

        }
        public string ObtenerUltimoNumero()
        {
            clsLegajoBO LegajoBO = new clsLegajoBO();
            int Numeracion = 0;
            try
            {
                var query = (from p in LegajoBO.listar()
                             select Convert.ToInt32(p.CLEG_LEGAJO)).DefaultIfEmpty(0).Max();
                Numeracion = query + 1;
                return Numeracion.ToString("00000000000");

            }
            catch (Exception)
            {
                return null;
            }

        }
        public List<SGP_TIPOPROCESO> ListarTipoProceso()
        {
            try
            {
                return new clsTipoProcesoBO().listar();

            }
            catch (Exception)
            {
                return null;
            }
        }
        public List<SGP_DISJUD> listarDistJudicial()
        {
            try
            {
                return new clsDistJudicialBO().listar();
            }
            catch (Exception)
            {
                return null;
            }
        }
        public List<PRM_PERSONAL> listarPersonal()
        {
            throw new NotImplementedException();
        }
        public IEnumerable<object> ListarDepartamentos(string IDDEPT = "")
        {
            return new clsUbigeoBO().listarDepartamento(IDDEPT);
        }
        public IEnumerable<object> ListarProvincia(string IDDEPT, string IDPROV = "")
        {
            return new clsUbigeoBO().listarProvincia(IDDEPT, IDPROV);
        }
        public IEnumerable<object> ListarDistritos(string IDDEPT, string IDPROV, string IDDIST = "")
        {
            return new clsUbigeoBO().listarDistrito(IDDEPT, IDPROV, IDDIST);
        }
        public IEnumerable<object> listarAbogado(string cp_per_codigo = "")
        {
            return new clsPersonalBO().listarAbogado(cp_per_codigo);
        }
        public List<SGP_ENTIDAD> listarEntidad()
        {
            return new clsEntidadBO().listar();
        }
        public List<SGP_ESTADO> listarEstado()
        {
            return new clsEstadoBO().listar();
        }
        public List<PRM_UNI_ORGANICA> listaUnidOrg()
        {
            return new clsUnidOrgBO().listar();
        }
    }
}
